package com.kgcx.system.service;

import com.kgcx.common.constant.Cons;
import com.kgcx.system.domain.LicenseInfo;
import com.kgcx.system.mapper.LicenseInfoMapper;
import com.kgcx.system.rabbitmq.producer.LicenseInfoProducer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author 吴刚林
 * @date 2017/11/20
 */
@Service
public class LicenseInfoService {
    @Autowired
    private LicenseInfoMapper licenseInfoMapper;

    @Autowired
    private LicenseInfoProducer licenseInfoProducer;


    public void getLicenseInfo(LicenseInfo licenseInfo) {
        licenseInfoMapper.selectOneActive(licenseInfo);
    }
    /**
     * 根据ID运营公司经营许可放到MQ里面给监管平台
     * @param kid
     * @return
     */
    public LicenseInfo getLicenseInfoById(Long kid) {
       LicenseInfo licenseInfo= licenseInfoMapper.selectByPrimaryKey(kid);
       licenseInfoProducer.addLicenseInfo(licenseInfo);
       return licenseInfo;
    }
    @Transactional(rollbackFor = Exception.class)
    public void addLicenseInfo(LicenseInfo licenseInfo) {
        licenseInfoMapper.insertSelective(licenseInfo);

        licenseInfoProducer.addLicenseInfo(licenseInfo);

    }

    @Transactional(rollbackFor = Exception.class)
    public void updateLicenseInfo(LicenseInfo licenseInfo) {
        licenseInfoMapper.updateByPrimaryKeySelective(licenseInfo);

        licenseInfoProducer.updateLicenseInfo(licenseInfo);
    }

    @Transactional(rollbackFor = Exception.class)
    public void removeLicenseInfo(Long kid) {
        LicenseInfo licenseInfo = new LicenseInfo();
        licenseInfo.setKid(kid);
        licenseInfo.setStatus(Cons.COMMON_STATUS_DELETE);
        licenseInfoMapper.updateByPrimaryKeySelective(licenseInfo);

        licenseInfoProducer.deleteLicenseInfo(licenseInfo);
    }
}
